﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BusinessLayer.Clases_Seguridad_BO;
using EntityLayer;

namespace proyGestionActivos
{
    public partial class UsuarioFormNuevo : System.Web.UI.Page
    {
        clsGrupoBL negociogrupo = new clsGrupoBL();
        clsUsuarioBL negocioUsuario = new clsUsuarioBL();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.ListarAccesosUsuarios();
                //this.cargarTipoUsuario();
                //cboTipoUsuario.SelectedIndex = 1;
            }
        }

        void ListarAccesosUsuarios()
        {
            try
            {
                gvAccesos_Usuarios.DataSource = negociogrupo.listarAccesosUsuarios();
                gvAccesos_Usuarios.DataBind();
            }
            catch
            {

            }

        }

        //void cargarTipoUsuario()
        //{
        //    cboTipoUsuario.DataSource = BL_t_mae_tabla_general_DetLogic.listarFiltroTipoUsuario();
        //    cboTipoUsuario.ValueField = "ID_GENERAL_DET";
        //    cboTipoUsuario.TextField = "DES_LARGA";
        //    cboTipoUsuario.DataBind();
        //}

        void limpiarControles()
        {
            txtUsuario.Text = "";
            txtpasswordConfir.Text = "";
            txtpassword.Text = "";
            txtNombreUsuario.Text = "";
            txtCorreoElectronico.Text = "";
            txtApellidos.Text = "";
        }

        protected void btnLimpiar_Click(object sender, EventArgs e)
        {
            this.limpiarControles();
        }

        protected void gvAccesos_Usuarios_PageIndexChanged(object sender, EventArgs e)
        {
            this.ListarAccesosUsuarios();
        }

        protected void gvAccesos_Usuarios_AfterPerformCallback(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewAfterPerformCallbackEventArgs e)
        {
            this.ListarAccesosUsuarios();
        }

        protected void btnGrabar_Click(object sender, EventArgs e)
        {
            this.registrar();
        }

        void registrar()
        {
            try
            {
                if (txtUsuario.Text == String.Empty || txtApellidos.Text == String.Empty || txtCorreoElectronico.Text == String.Empty || txtNombreUsuario.Text == String.Empty || txtpassword.Text == String.Empty || txtpasswordConfir.Text == String.Empty || cboEstado.SelectedIndex == 0)
                {
                    string script = "ShowCreateAccountWindow7();";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", script, true);
                }
                else
                {
                    T_Usuario usuario = new T_Usuario();
                    usuario.ID_USUARIO = txtUsuario.Text;
                    usuario.DES_NOMBRE = txtNombreUsuario.Text;
                    usuario.DES_APELLIDOS = txtApellidos.Text;
                    usuario.DES_PASSWORD = clsSeguridad.Encrypt(this.txtpassword.Text);
                    usuario.DES_EMAIL = txtCorreoElectronico.Text;
                    usuario.IND_ESTADO = cboEstado.Text.Substring(0, 1);
                    //usuario.ID_TIPO_USUARIO = Convert.ToInt32(cboTipoUsuario.SelectedItem.Value);

                    if (CheckBoxRecordar.Checked == true)
                    {
                        usuario.IND_COOKIE = "S";
                    }
                    else
                    {
                        usuario.IND_COOKIE = "N";
                    }

                    if (negocioUsuario.Insertar(usuario))
                    {
                        this.insertarUsuarioGrupo();
                        string script = "ShowOK();";
                        ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", script, true);
                        this.limpiarControles();
                    }
                    string script1 = "ShowCreateAccountWindow4();";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", script1, true);
                }
            }
            catch (Exception ex)
            {
                //throw ex;
            }
        }

        void insertarUsuarioGrupo()
        {
            try
            {
                List<Object> selectItems = gvAccesos_Usuarios.GetSelectedFieldValues("ID_GRUPO");

                foreach (object selectItemId in selectItems)
                {
                    negocioUsuario.InsertarUsuarioGrupo(new T_Usuario_Grupo() { ID_USUARIO = txtUsuario.Text.Trim(), ID_GRUPO = (int)selectItemId });
                }
            }
            catch (Exception ex)
            {
                //throw ex;
            }
        }

        protected void btnSalir_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Administracion/Usuario/UsuarioForm.aspx?id=" + Request["id"].ToString());
        }


    }
}